package com.bh.order.vo;

import com.baomidou.mybatisplus.annotation.TableField;
import com.bh.common.annotation.Dict;
import com.bh.common.annotation.Excel;
import com.bh.common.enums.YesOrNo;
import com.bh.common.core.domain.DictLabelVo;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.apache.poi.ss.usermodel.HorizontalAlignment;

import java.util.Date;

/**
 * @author Administrator
 */
@EqualsAndHashCode(callSuper = true)
@Data
public class JcOrderVO extends DictLabelVo {


    private Long orderId;
    @Excel(name = "组织机构")
    private String organizationName;
    @Excel(name = "订单编号")
    private String orderCode;
    @Excel(name = "发货单号")
    private String relateBill1;
    @Excel(name = "客户单号")
    private String relateBill2;
    @Excel(name = "开单日期", width = 30, dateFormat = "yyyy-MM-dd")
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
    private Date orderTime;
    @Excel(name = "订单状态", dictType = "KY-OrderStatus")
    private Integer orderStatus;
    @Excel(name = "客户类型", dictType = "KY-CustomerType")
    private Integer customerType;
    @Excel(name = "客户名称", align = HorizontalAlignment.LEFT)
    private String customerName;
    private Long customerId;
    @Excel(name = "是否有拆单", dictType = "KY-CommIsNot")
    private Integer isTake;
    @Excel(name = "结算方式", dictType = "KY-Clearing")
    private Integer feeType;
    @Excel(name = "收入确认状态", dictType = "KY-ConfirmStatus")
    private Integer isConfirm;
    @Excel(name = "出发运点")
    private String startZoneName;
    @Excel(name = "目的站")
    private String toOrganizationName;
    @Excel(name = "目的运点")
    private String endZoneName;
    @Excel(name = "交付方式", dictType = "KY-HandoverType")
    private Integer handoverType;
    /**
     * 是否有异常
     */
    @ApiModelProperty("是否有异常")
    @Excel(name = "是否有异常")
    private Integer isAbnormal;

    private Double jzWeight;

    /**
     * 实际发运时间
     */
    @ApiModelProperty("实际发运时间")
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "实际发运时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date factLeaveTime;

    @Excel(name = "实际到达时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    private Date factArriveTime;
    @Excel(name = "合同是否超期", dictType = "KY-CommIsNot")
    private Integer customerIsExceed;

    private String salePerson;
    @Excel(name = "运输性质", dictType = "KY-TransportPro")
    private String transportPro;
    @Excel(name = "是否回单", dictType = "KY-CommIsNot")
    private Integer isBack;
    @Excel(name = "回单份数")
    private Integer backNumber;
    @Excel(name = "入库区域")
    private String zoneStorerName;


    @Excel(name = "货品名称")
    private String productName;

    @Excel(name = "货品数量")
    private Integer orderNumber;

    @Excel(name = "货品重量")
    private Double orderWeight;

    @Excel(name = "货品体积")
    private Double orderVolume;


    @Excel(name = "收货联系人")
    private String toContactPerson;

    @Excel(name = "收货电话")
    private String toIphone;

    @Excel(name = "收货地址", align = HorizontalAlignment.LEFT)
    private String toAddress;

    @Excel(name = "备注")
    private String orderDescription;

    private String createName;

    @Excel(name = "创建时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    private Date createTime;

    private String modifyName;

    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    private Date modifyTime;

    // 核查状态
    private YesOrNo recheckStatus;
    private Date recheckTime;
    // 核查人
    @Dict(dictTable = "sys_user", dictLabel = "nick_name", dictValue = "user_id", dictAlias = "recheckUserName")
    private Long recheckUserId;
    // 核查名称
    @TableField(exist = false)
    private String recheckUserName;
}
